Object Hierarchy | 関連する C++クラス:PluginRegistrar
PluginRegistrar
v4.0
PluginRegistrar オブジェクトは、プラグイン項目をその他の詳細情報とともに softimage
に登録するためにプラグインモジュールによって使用されます。オブジェクトは Softimage
によって作成され、プラグインをロード/アンロードするディレクトリの場所や、プラグインのファイル名などの情報が含まれています。
Softimage が起動されると、ロードする各プラグインの PluginRegistrar
オブジェクトが作成され、プラグインによって公開されているXSILoadPlugin関数のエントリポイントに渡されます。Softimage
によって収集された情報は、ユーザが必要としたときにプラグイン項目の作成に使用されます。
プラグインがアンロードされると、この特定のプラグインについて PluginRegistrar
オブジェクトが作成され、プラグインによって公開されているXSIUnloadPlugin関数のエントリポイントに渡されます(「Callbacks
for Self-Installing Plug-ins」を参照)。プラグインによって登録された情報には、Pluginオブジェクトからアクセスします。
IsClassOf![]() |
IsEqualTo![]() |
RegisterCommand | RegisterConverterEvent |
| RegisterEvent | RegisterFilter | RegisterMenu | RegisterOperator |
| RegisterProperty | RegisterShader![]() |
RegisterShaderLanguageParser![]() |
RegisterTimerEvent |
| Application | Author | Categories | |
| Filename | FullName![]() |
Help | Language |
| Major | Minor | Name![]() |
NestedObjects |
| Origin | OriginPath | Parent | Type![]() |
| URL | UserData | ||
/*--------------------------------------------------------------------------
This example demonstrates the how to the use PluginRegistrar object
README: Copy and paste the example into the script editor and run (F5).
The filter will now be listed in the Scene Explorer filter list when
the "Source/Clips" view context is selected.
--------------------------------------------------------------------------*/
// This function is required to register a plug-in in Softimage
function XSILoadPlugin( in_reg )
{
Application.LogMessage( "PluginRegistrar XSILoadPlugin called" );
// register plug-in information with the PluginRegistrar object
in_reg.Author = "Softimage Co." ;
in_reg.Name = "PluginRegistrar Example";
in_reg.Help = MakeHTMLPage();
in_reg.URL = "www.softimage.com";
in_reg.Email = "webmaster@softimage.com";
// the version number of this plug-in
in_reg.Major = 1;
in_reg.Minor = 0 ;
Application.LogMessage( "This plug-in language: " + in_reg.Language );
// register the cone filter plug-in item
in_reg.RegisterFilter( "ConePrimitive", siFilterObject );
return true;
}
// This non-mandatory function is called when the plug-in is unloaded
function XSIUnloadPlugin( in_reg )
{
Application.LogMessage( "PluginRegistrar XSIUnloadPlugin called" );
Application.LogMessage( "Name: " + in_reg.Name );
Application.LogMessage( "Author: " + in_reg.Author);
Application.LogMessage( "Major: " + in_reg.Major);
Application.LogMessage( "Minor: " + in_reg.Minor);
Application.LogMessage( "Language: " + in_reg.Language);
Application.LogMessage( "URL: " + in_reg.URL);
Application.LogMessage( "Email: " + in_reg.Email);
Application.LogMessage( "Help: " + in_reg.Help);
return(true);
}
function ConePrimitive_Match( in_context )
{
var obj = in_context.GetAttribute("Input");
return obj.IsKindOf( siConePrimType );
}
function MakeHTMLPage()
{
// Build the filename + path
var sHelpFileName = XSIUtils.BuildPath( InstallationPath( siUserPath ), "Data", "HelpMe.html" );
// Create a standard hello world script file
fso = XSIFactory.CreateActiveXObject( "Scripting.FileSystemObject" );
var fHWFile = fso.CreateTextFile( sHelpFileName );
fHWFile.WriteLine( "<html>" );
fHWFile.WriteLine( "<head>" );
fHWFile.WriteLine( "\t" + "<title>Help Page for Testing PluginRegistrar</title>" );
fHWFile.WriteLine( "</head>");
fHWFile.WriteLine( "<body>");
fHWFile.WriteLine( "\t" + "<p>Help! I//m trapped inside this HTML code!</p>" );
fHWFile.WriteLine( "</body>" );
fHWFile.WriteLine( "</html>" );
fHWFile.Close();
// Return the name of the new command
return sHelpFileName;
}
//--------------------------------------------------------------------
// Code to bootstrap example into system
//--------------------------------------------------------------------
function ExampleSourceCode()
{
return "//XSISDK Doc Example\n" +
ConePrimitive_Match.toString() + "\n" +
MakeHTMLPage.toString() + "\n" +
XSIUnloadPlugin.toString() + "\n" +
XSILoadPlugin.toString();
}
// if we are running from script editor save code to
// examples addon folder in the user's directory.
if (GetUserPref("ScriptingSessionActive"))
{
var ex_name = "ExPluginRegistrar";
var ex_subfolder = "Plugins";
var ex_folder = "XSISDKDocExamples";
var ex_langsuffix = ".js";
CreateAddonDirectories( InstallationPath(siUserPath), ex_folder );
var fso = XSIFactory.CreateActiveXObject("Scripting.FileSystemObject");
var filename = XSIUtils.BuildPath(
InstallationPath(siUserAddonPath),
ex_folder,
"Application",
ex_subfolder,
ex_name+ex_langsuffix );
if (!fso.FileExists(filename))
{
var f = fso.CreateTextFile ( filename );
f.write( ExampleSourceCode() );
f.close();
Application.LoadPlugin(filename);
}
}
|